# 抖码算法，让算法学习变得简单有趣
# 作者：老汤

# 参考力扣真题 131. 分割回文串
# 在课程 B【刷题篇第 26 天：动态规划（一）】 第 7 节
# 链接：https://yjs.xet.tech/s/3ZJm6m

def is_shui_xian_shu(s, left, right):
    num = 0
    for i in range(left, right + 1):
        num += ord(s[i])
    if num <= 100 or num >= 999:
        return False
    # 百位数
    b = num // 100
    # 十位数
    s = num % 100 // 10
    # 个位数
    g = num % 100 % 10
    if (pow(b, 3) + pow(s, 3) + pow(g, 3)) == num:
        return True
    return False


s = str(input())

# 先计算每个区间是不是水仙花数
# 定义状态，dp[i][j] 表示子字符串区间 [i, j] 对应的子串累加和是否是水仙数
dp = [[False] * len(s) for _ in range(len(s))]
# 状态转移
for j in range(len(s)):
    for i in range(j):
        dp[i][j] = is_shui_xian_shu(s, i, j)

res = []


def dfs(start_index, path) -> None:
    if start_index == len(s):
        res.append(path[:])
        return
    for i in range(start_index, len(s)):
        if not dp[start_index][i]:
            continue
        path.append(s[start_index:i + 1])
        dfs(i + 1, path)
        path.pop()


dfs(0, [])

if len(res) == 1:
    print(len(res[0]))
elif len(res) == 0:
    print(0)
else:
    print(-1)